A computer system typically includes numerous devices that work in conjunction with the processing and memory components of the system. These devices generally communicate with the system using standardized interfaces and protocols. Although the interfaces and protocols may be standardized, the devices themselves generally are not. The devices serve a wide variety of purposes and are designed and manufactured by an even wider variety of manufacturers.
One concern of computer system manufacturers involves managing the amount of power that a computer system consumes. To manage the power of the computer system, however, the power of the devices typically needs to be managed. One way of managing the power of both the system and the devices is to allow the operating system to control the power consumption of the system and devices.
The Advanced Configuration and Power Interface Specification (ACPI) provides industry standard interfaces to devices in computer systems to enable device configuration and power management using an operating system. ACPI provides a programming language known as the ACPI Source Language (ASL) to allow a computer or device manufacturer to generate code to accomplish the tasks associated with ACPI.
Unfortunately, ASL is a relatively primitive programming language. In particular, some programming language constructs that programmers have become accustomed to are not available to ASL programmers. As a result, ASL code may require additional effort to develop and may not be as high of quality code as code written in other programming languages.
It would be desirable to be able to efficiently generate high quality ASL code.